package vista;

import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;


/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class MenuPrincipal extends javax.swing.JFrame {

	{
		//Set Look & Feel
		try {
			javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

	
	private static final long serialVersionUID = 1L;
	private JLabel jLEqCodigo;
	private JLabel jLAno1;
	private JLabel jLAno;
	private JLabel jLCiudad;
	private JLabel jLEstadio;
	private JPanel jPanelEquipo;
	private JButton BtnArLimpiar;
	private JButton BtnArSalir;
	private JLabel jLArRegistro;
	private JTextField jTxtArFecha;
	private JTextField jTxtArApellido;
	private JTextField jTxtFechaInicial;
	private JLabel jLblFechaInicial;
	private JPanel jPGenerarPartidos;
	private JTextField jTxtArNombre;
	private JTextField jTxtArCedula;
	private JLabel jLArFecha;
	private JLabel jLApellido;
	private JLabel jLArNombre;
	private JButton jBtnGenerar;
	private JButton BtnArRegistrar;
	private JTextField jTxtEqNombre;
	private JLabel jLEqRegistrodeEquipo;
	private JButton BtnEqAgregar;
	private JButton BtnEqLimpiar;
	private JTextField jTxtEqAno;
	private JTextField jTxtEqCodigo;
	private JTextField jTxtEqEstadio;
	private JTextField jTxtEqCiudad;
	private JLabel jLArCedula;
	private JPanel jPArbitro;
	private JButton btnCargarJugadores;
	private JFileChooser BuscarEquipos;
	private JMenu jMenuSalir;
	private JMenuItem jMenuItemSalir;
	private JMenuItem jMenuItemEstadisticas;
	private JMenu jMenuEstadisticas;
	private JMenuItem jMenuItemCalendario;
	private JMenu jMenuCalendario;
	private JMenuItem jMenuItemPartido;
	private JMenuItem jMenuItemEquipo;
	private JMenuItem jMenuItemArbitro;
	private JMenu jMenuPartido;
	private JMenu jMenuEquipo;
	private JMenu jMenuArbitro;
	private JMenuBar jMenuBarLiga;
	private JButton BtnEqSalir;
	private JLabel jLEqNombre;
	/*
	 * Variables de Usuario
	 */
	private File arc_jug_eq = null;
	
	public MenuPrincipal() {
		super();
		initGUI();
	}
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			this.setTitle("Simulador Temporada Eliminatoria LVBP");
			this.setPreferredSize(new java.awt.Dimension(939, 515));
			this.setVisible(false);

			{
				jMenuBarLiga = new JMenuBar();
				setJMenuBar(jMenuBarLiga);
				{
					jMenuArbitro = new JMenu();
					jMenuBarLiga.add(jMenuArbitro);
					jMenuArbitro.setText("     Arbitro     ");
					jMenuArbitro.setFont(new java.awt.Font("DejaVu Sans",1,14));
					{
						jMenuItemArbitro = new JMenuItem();
						jMenuArbitro.add(jMenuItemArbitro);
						jMenuItemArbitro.setText("Registrar");
						jMenuItemArbitro.setActionCommand("MenuRegistrar Arbitro");
					}
				}
				{
					jMenuEquipo = new JMenu();
					jMenuBarLiga.add(jMenuEquipo);
					jMenuEquipo.setText("     Equipo     ");
					jMenuEquipo.setFont(new java.awt.Font("DejaVu Sans",1,14));
					{
						jMenuItemEquipo = new JMenuItem();
						jMenuEquipo.add(jMenuItemEquipo);
						jMenuItemEquipo.setText("Registrar Equipo");
						jMenuItemEquipo.setActionCommand("MenuRegistrar Equipo");
					}
				}
				{
					jMenuPartido = new JMenu();
					jMenuBarLiga.add(jMenuPartido);
					jMenuPartido.setText("     Partido     ");
					jMenuPartido.setFont(new java.awt.Font("DejaVu Sans",1,14));
					{
						jMenuItemPartido = new JMenuItem();
						jMenuPartido.add(jMenuItemPartido);
						jMenuItemPartido.setText("Generar Partido");
						jMenuItemPartido.setActionCommand("MenuGenerar Partido");
					}
				}
				{
					jMenuCalendario = new JMenu();
					jMenuBarLiga.add(jMenuCalendario);
					jMenuCalendario.setText("     Calendario     ");
					jMenuCalendario.setFont(new java.awt.Font("DejaVu Sans",1,14));
					{
						jMenuItemCalendario = new JMenuItem();
						jMenuCalendario.add(jMenuItemCalendario);
						jMenuItemCalendario.setText("Consultar Calendario");
						jMenuItemCalendario.setActionCommand("MenuConsultar Calendario");
					}
				}
				{
					jMenuEstadisticas = new JMenu();
					jMenuBarLiga.add(jMenuEstadisticas);
					jMenuEstadisticas.setText("     Estadisticas     ");
					jMenuEstadisticas.setFont(new java.awt.Font("DejaVu Sans",1,14));
					{
						jMenuItemEstadisticas = new JMenuItem();
						jMenuEstadisticas.add(jMenuItemEstadisticas);
						jMenuItemEstadisticas.setText("Tabla de Resultados");
						jMenuItemEstadisticas.setActionCommand("MenuTabla de Resultados");
					}
				}
				{
					jMenuSalir = new JMenu();
					jMenuBarLiga.add(jMenuSalir);
					jMenuSalir.setText("    Salir    ");
					jMenuSalir.setFont(new java.awt.Font("DejaVu Sans",1,14));
					{
						jMenuItemSalir = new JMenuItem();
						jMenuSalir.add(jMenuItemSalir);
						jMenuItemSalir.setText("Salir");
						jMenuItemSalir.setActionCommand("MenuSalir");
					}
				}
			}

			{
				jPArbitro = new JPanel();
				getContentPane().add(jPArbitro);
				jPArbitro.setBounds(27, 71, 395, 335);
				jPArbitro.setLayout(null);
				jPArbitro.setVisible(true);
				{
					jLArCedula = new JLabel();
					jPArbitro.add(jLArCedula);
					jLArCedula.setText("Cedula");
					jLArCedula.setBounds(51, 131, 68, 15);
					jLArCedula.setFont(new java.awt.Font("DejaVu Sans",1,14));
				}
				{
					jLArNombre = new JLabel();
					jPArbitro.add(jLArNombre);
					jLArNombre.setText("Nombre");
					jLArNombre.setBounds(51, 163, 68, 20);
					jLArNombre.setFont(new java.awt.Font("DejaVu Sans",1,14));
				}
				{
					jLApellido = new JLabel();
					jPArbitro.add(jLApellido);
					jLApellido.setText("Apellido");
					jLApellido.setBounds(51, 194, 69, 21);
					jLApellido.setFont(new java.awt.Font("DejaVu Sans",1,14));
				}
				{
					jLArFecha = new JLabel();
					jPArbitro.add(jLArFecha);
					jLArFecha.setText("Fecha");
					jLArFecha.setBounds(51, 223, 68, 17);
					jLArFecha.setFont(new java.awt.Font("DejaVu Sans",1,14));
				}
				{
					jTxtArCedula = new JTextField();
					jPArbitro.add(jTxtArCedula);
					jTxtArCedula.setBounds(125, 128, 145, 22);
				}
				{
					jTxtArNombre = new JTextField();
					jPArbitro.add(jTxtArNombre);
					jTxtArNombre.setBounds(125, 162, 145, 21);
				}
				{
					jTxtArApellido = new JTextField();
					jPArbitro.add(jTxtArApellido);
					jTxtArApellido.setBounds(125, 193, 145, 22);
				}
				{
					jTxtArFecha = new JTextField();
					jPArbitro.add(jTxtArFecha);
					jTxtArFecha.setBounds(125, 221, 145, 23);
					jTxtArFecha.setToolTipText("DD/MM/AAAA");
				}
				{
					jLArRegistro = new JLabel();
					jPArbitro.add(jLArRegistro);
					jLArRegistro.setText("Registro de Arbitro");
					jLArRegistro.setBounds(57, 43, 226, 25);
					jLArRegistro.setFont(new java.awt.Font("DejaVu Sans",1,18));
				}
				{
					BtnArSalir = new JButton();
					jPArbitro.add(BtnArSalir);
					BtnArSalir.setText("Salir");
					BtnArSalir.setBounds(221, 293, 101, 24);
					BtnArSalir.setFont(new java.awt.Font("DejaVu Sans",1,11));
					BtnArSalir.setActionCommand("BtnSalir Arbitro");
				}
				{
					BtnArLimpiar = new JButton();
					jPArbitro.add(BtnArLimpiar);
					BtnArLimpiar.setText("Limpiar");
					BtnArLimpiar.setBounds(34, 292, 77, 26);
					BtnArLimpiar.setFont(new java.awt.Font("DejaVu Sans",1,11));
					BtnArLimpiar.setActionCommand("BtnLimpiar Arbitro");
				}
				{
					BtnArRegistrar = new JButton();
					jPArbitro.add(BtnArRegistrar);
					BtnArRegistrar.setText("Registrar");
					BtnArRegistrar.setBounds(116, 292, 100, 26);
					BtnArRegistrar.setFont(new java.awt.Font("DejaVu Sans",1,12));
					BtnArRegistrar.setActionCommand("BtnRegistrar Arbitro");
				}
			}
			{
				jPanelEquipo = new JPanel();
				getContentPane().add(jPanelEquipo);
				jPanelEquipo.setBounds(422, 60, 410, 346);
				jPanelEquipo.setLayout(null);
				jPanelEquipo.setVisible(true);
				{
					jLEqNombre = new JLabel();
					jPanelEquipo.add(jLEqNombre);
					jLEqNombre.setText("Nombre");
					jLEqNombre.setBounds(51, 149, 90, 13);
					jLEqNombre.setFont(new java.awt.Font("DejaVu Sans",1,14));
				}
				{
					jLEqCodigo = new JLabel();
					jPanelEquipo.add(jLEqCodigo);
					jLEqCodigo.setText("Codigo");
					jLEqCodigo.setBounds(51, 114, 91, 14);
					jLEqCodigo.setFont(new java.awt.Font("DejaVu Sans",1,14));
				}
				{
					jLEstadio = new JLabel();
					jPanelEquipo.add(jLEstadio);
					jLEstadio.setText("Estadio");
					jLEstadio.setBounds(50, 174, 88, 18);
					jLEstadio.setFont(new java.awt.Font("DejaVu Sans",1,14));
				}
				{
					jLCiudad = new JLabel();
					jPanelEquipo.add(jLCiudad);
					jLCiudad.setText("Ciudad");
					jLCiudad.setBounds(50, 212, 93, 15);
					jLCiudad.setFont(new java.awt.Font("DejaVu Sans",1,14));
				}
				{
					jLAno = new JLabel();
					jPanelEquipo.add(jLAno);
					jLAno.setText("Año de ");
					jLAno.setBounds(50, 240, 88, 11);
					jLAno.setFont(new java.awt.Font("DejaVu Sans",1,14));
				}
				{
					jLAno1 = new JLabel();
					jPanelEquipo.add(jLAno1);
					jLAno1.setText("Fundacion");
					jLAno1.setBounds(50, 257, 87, 14);
					jLAno1.setFont(new java.awt.Font("DejaVu Sans",1,14));
				}
				{
					jTxtEqCiudad = new JTextField();
					jPanelEquipo.add(jTxtEqCiudad);
					jTxtEqCiudad.setBounds(149, 217, 105, 22);
				}
				{
					jTxtEqEstadio = new JTextField();
					jPanelEquipo.add(jTxtEqEstadio);
					jTxtEqEstadio.setBounds(150, 178, 106, 22);
				}
				{
					jTxtEqCodigo = new JTextField();
					jPanelEquipo.add(jTxtEqCodigo);
					jTxtEqCodigo.setBounds(150, 111, 108, 21);
					jTxtEqCodigo.setToolTipText("XXXXX");
				}
				{
					jTxtEqAno = new JTextField();
					jPanelEquipo.add(jTxtEqAno);
					jTxtEqAno.setBounds(149, 254, 107, 22);
				}
				{
					BtnEqLimpiar = new JButton();
					jPanelEquipo.add(BtnEqLimpiar);
					BtnEqLimpiar.setText("Limpiar");
					BtnEqLimpiar.setBounds(50, 319, 81, 22);
					BtnEqLimpiar.setFont(new java.awt.Font("DejaVu Sans",1,12));
					BtnEqLimpiar.setActionCommand("BtnLimpiar Equipo");
				}
				{
					BtnEqAgregar = new JButton();
					jPanelEquipo.add(BtnEqAgregar);
					BtnEqAgregar.setText("Agregar");
					BtnEqAgregar.setBounds(184, 319, 81, 22);
					BtnEqAgregar.setFont(new java.awt.Font("DejaVu Sans",1,12));
					BtnEqAgregar.setActionCommand("BtnAgregar Equipo");
				}
				{
					BtnEqSalir = new JButton();
					jPanelEquipo.add(BtnEqSalir);
					BtnEqSalir.setText("Salir");
					BtnEqSalir.setBounds(324, 319, 81, 23);
					BtnEqSalir.setFont(new java.awt.Font("DejaVu Sans",1,12));
					BtnEqSalir.setActionCommand("BtnSalir Equipo");
				}
				{
					jLEqRegistrodeEquipo = new JLabel();
					jPanelEquipo.add(jLEqRegistrodeEquipo);
					jLEqRegistrodeEquipo.setText("Registro de Equipo");
					jLEqRegistrodeEquipo.setBounds(131, 53, 203, 18);
					jLEqRegistrodeEquipo.setFont(new java.awt.Font("DejaVu Sans",1,18));
				}
				{
					jTxtEqNombre = new JTextField();
					jPanelEquipo.add(jTxtEqNombre);
					jTxtEqNombre.setBounds(150, 145, 104, 22);
				}
				{
					btnCargarJugadores = new JButton();
					jPanelEquipo.add(btnCargarJugadores);
					btnCargarJugadores.setText("Cargar Jugadores");
					btnCargarJugadores.setBounds(276, 254, 123, 22);
					btnCargarJugadores.setActionCommand("btnCargarJugadores");
				}
			
		}
			{
				jPGenerarPartidos = new JPanel();
				getContentPane().add(jPGenerarPartidos);
				jPGenerarPartidos.setBounds(252, 43, 172, 89);
				jPGenerarPartidos.setLayout(null);
				{
					jLblFechaInicial = new JLabel();
					jPGenerarPartidos.add(jLblFechaInicial);
					jLblFechaInicial.setText("Fecha Inicial:");
					jLblFechaInicial.setBounds(45, 5, 82, 15);
				}
				{
					jTxtFechaInicial = new JTextField();
					jPGenerarPartidos.add(jTxtFechaInicial);
					jTxtFechaInicial.setBounds(45, 29, 82, 19);
					jTxtFechaInicial.setToolTipText("Fecha en formato DD/MM/AAAA");
				}
				{
					jBtnGenerar = new JButton();
					jPGenerarPartidos.add(jBtnGenerar);
					jBtnGenerar.setText("Generar");
					jBtnGenerar.setBounds(45, 56, 81, 22);
					jBtnGenerar.setActionCommand("BtnGenerar Partido");
				}
			}
			pack();
			this.setSize(939, 515);
		} catch (Exception e) {
		    //add your error handling code here
			e.printStackTrace();
		}
	}
	
	/*
	 * Getters de los JTextBox de los paneles
	 */
	public String getTxtEqCodigo(){
		return this.jTxtEqCodigo.getText();
	}
	
	public String getTxtEqEstadio(){
		return this.jTxtEqEstadio.getText();
	}
	
	public String getTxtEqCiudad(){
		return jTxtEqCiudad.getText();
	}
	
	public String getTxtArFecha(){
		return jTxtArFecha.getText();
	}

	public String getTxtArApellido(){
		return jTxtArApellido.getText();
	}
	
	public String getTxtArNombre(){
		return jTxtArNombre.getText();
	}
	
	public String getTxtArCedula(){
		return jTxtArCedula.getText();
	}
	
	public String getTxtEqAno(){
		return jTxtEqAno.getText();
	}
	
	public String getTxtEqNombre(){
		return jTxtEqNombre.getText();
	}
	
	public File getArcJugadores() {
		return this.arc_jug_eq;
	}
	
	public String getTxtFechaInicial() {
		return this.jTxtFechaInicial.getText();
	}
	
	//Setea el String recibido como parametro en el campo de fecha inicial para generar los partidos
	public void setTxtFechaInic(String fec) {
		this.jTxtFechaInicial.setText(fec);
	}
	
	/*
	 * Blanquea todos los campos donde pueden introducirse datos en el Panel de Arbitro
	 */
	public void blanquearCamposArbitro(){
		jTxtArFecha.setText("");
		jTxtArApellido.setText("");
		jTxtArNombre.setText("");
		jTxtArCedula.setText("");
	}
	
	/*
	 * Blanquea todos los campos donde pueden introducirse datos en el Panel de Equipo
	 */
	public void blanquearCamposEquipo(){
		jTxtEqEstadio.setText("");
		jTxtEqCiudad.setText("");
		jTxtEqAno.setText("");
		jTxtEqNombre.setText("");
		jTxtEqCodigo.setText("");
	}
	
	//Borra el campo donde se ingresa la fecha inicial para generar los partidos
	public void blanquearCampoFechaInic() {
		jTxtFechaInicial.setText("");
	}
	//Muestra un mensaje con el String recibido por parámetro
	public void mostrarMensaje(String mensaje){
		JOptionPane.showMessageDialog(this, mensaje);
	}
	
	/*
	 * Metodo que agrega el ControladorMenuPrincipal como listener de las acciones
	 * que se ejecutan la VentanaMenuPrincipal
	 */
	public void agregarListener(ActionListener accionar){
		this.BtnArLimpiar.addActionListener(accionar);
		this.BtnArRegistrar.addActionListener(accionar);
		this.BtnArSalir.addActionListener(accionar);
		this.BtnEqLimpiar.addActionListener(accionar);
		this.BtnEqAgregar.addActionListener(accionar);
		this.BtnEqSalir.addActionListener(accionar);
		this.btnCargarJugadores.addActionListener(accionar);
		this.jMenuItemArbitro.addActionListener(accionar);
		this.jMenuItemEquipo.addActionListener(accionar);
		this.jMenuItemSalir.addActionListener(accionar);
		this.jMenuItemPartido.addActionListener(accionar);
		this.jBtnGenerar.addActionListener(accionar);
		this.jMenuItemEstadisticas.addActionListener(accionar);
		this.jMenuItemCalendario.addActionListener(accionar);
	}
	
	/*
	 * Métodos para motrar u ocultar los paneles
	 */
	public void MostrarPanelArbitro(){
		this.jTxtArFecha.setText("DD/MM/AAAA");
		jPArbitro.setVisible(true);
	}
	
	public void MostrarPanelEquipo(){
		this.jTxtFechaInicial.setText("AAAA");
		jPanelEquipo.setVisible(true);
	}
	
	public void OcultarPanelArbitro(){
		jPArbitro.setVisible(false);
	}

	public void OcultarPanelEquipo(){
		jPanelEquipo.setVisible(false);
	}
	
	public void MostrarPanelFecha() {
		jPGenerarPartidos.setVisible(true);
	}
	
	public void OcultarpanelFecha() {
		jPGenerarPartidos.setVisible(false);
	}
	
	public void mostrarPreguntaFecha() {
		this.jPGenerarPartidos.setVisible(true);
	}
	
	public void OcultarJFileChooser() {
		BuscarEquipos.setVisible(false);
	}
	
	public void limpiarArchivoJugadores() {
		this.arc_jug_eq = null;
	}
	
	/*
	 * Metodo que muestra un FileChooser para escoger el archivo de texto que 
	 * contiene los datos de los jugadores, para añadirlos al arreglo de jugadores
	 * del equipo
	 */
	public void MostrarJFileChooser() {
		BuscarEquipos = new JFileChooser();
		int sel_FileChooser = BuscarEquipos.showDialog(null, "Aceptar");
		getContentPane().add(BuscarEquipos);
		BuscarEquipos.setMultiSelectionEnabled(false);
		BuscarEquipos.setToolTipText("Seleccione el archivo de Jugadores del Equipo");
		BuscarEquipos.setAcceptAllFileFilterUsed(false);
		BuscarEquipos.setFileSelectionMode(JFileChooser.FILES_ONLY);
		BuscarEquipos.setApproveButtonText("Aceptar");
		BuscarEquipos.setVisible(true);
		if(sel_FileChooser == JFileChooser.APPROVE_OPTION) { //Si se selecciono Aceptar
			BuscarEquipos.setVisible(false);
			if(BuscarEquipos.getSelectedFile().exists()) {
				if(BuscarEquipos.getSelectedFile().canRead()) {
					this.arc_jug_eq = BuscarEquipos.getSelectedFile();
				}
				else
					this.mostrarMensaje("No se puede leer el archivo");
			}
			else
				this.mostrarMensaje("El Archivo especificado no existe");
		}
		if(sel_FileChooser == JFileChooser.CANCEL_OPTION || sel_FileChooser == JFileChooser.ERROR_OPTION) {
			BuscarEquipos.setVisible(false);
			}
	}
	
	public void Salir() {
		try {
			this.dispose();
		} catch (Throwable e) {
			e.printStackTrace();
		}
		
	}
}
